package com.zhipu.balance.utils.print.rice

import android.text.TextUtils
import android.view.View
import com.blankj.utilcode.util.TimeUtils
import com.zhipu.balance.mobile.event.RecordRice
import com.zhipu.balance.utils.InitializeUtils
import com.zhipu.balance.utils.print.BrightekCommandM
import java.nio.charset.Charset

/**
 * 稻谷打印
 */
object RicePrintUtils {

    /**
     * 稻谷打印
     */
    fun RicPrinting(mRecordRice : RecordRice){
        val stringBuilder = StringBuilder()
        val title = "稻谷计算"
        val retract = ((1.0 - title.length / 16.0) * 16).toInt()
        for (i in 0 until retract) {
            stringBuilder.append(" ")
        }
        stringBuilder.append(title).append('\r')
        //编号
        stringBuilder.append("编号：").append(mRecordRice.uniqueId).append('\r')
        //时间
        stringBuilder.append("时间：").append(TimeUtils.millis2String(mRecordRice.inspectionDate)).append('\r')
        /**
         * 杂质记录员
         */
        if(!TextUtils.isEmpty(mRecordRice.impurityRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("杂质").append('\r')
            stringBuilder.append("\r")
            // 大样试验-试样质量
            stringBuilder.append("大样质量(G)：").append(mRecordRice.largeMiscellaneousSampleQuality).append('\r');
            //大样试验-杂质
            stringBuilder.append("大样杂质(G)：").append(mRecordRice.detailImpurity).append('\r');
            //大样杂质率
            stringBuilder.append("大样杂质率(%)：").append(mRecordRice.detailResults).append('\r');
            //小样试验-试样质量
            stringBuilder.append("小样质量(G)：").append(mRecordRice.smallMiscellaneousSampleQuality).append('\r');
            //小样试验-杂质
            stringBuilder.append("小样杂质(G)：").append(mRecordRice.smallSampleImpurity).append('\r');
            //小样杂质率
            stringBuilder.append("小样杂质率(%)：").append(mRecordRice.sampleResults).append('\r');
            //杂质总量
            stringBuilder.append("杂质总量(%)：").append(mRecordRice.impurityResults).append('\r');
            //杂质记录员
            stringBuilder.append("杂质记录员：").append(mRecordRice.impurityRecorder).append('\r');
        }
        /**
         * 出糙率记录员
         */
        if(!TextUtils.isEmpty(mRecordRice.rougheningRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("出糙").append('\r');
            stringBuilder.append("\r");
            // 大样试验-试样质量
            stringBuilder.append("出糙质量(G)：").append(mRecordRice.roughSampleQuality).append('\r');
            //全部糙米
            stringBuilder.append("全部糙米(G)：").append(mRecordRice.brownRiceQuality).append('\r');
            //不完善糙米
            stringBuilder.append("不完善糙米(G)：").append(mRecordRice.incompleteBrownRiceQuality).append('\r');
            //出糙率
            stringBuilder.append("出糙率(%)：").append(mRecordRice.rougheningResults).append('\r');
            //出糙率记录员
            stringBuilder.append("出糙率记录员：").append(mRecordRice.rougheningRecorder).append('\r');
        }
        /**
         * 整精米率记录员
         */
        if(!TextUtils.isEmpty(mRecordRice.headRiceRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("整精米").append('\r');
            stringBuilder.append("\r");
            // 整精米率质量
            stringBuilder.append("整精米率质量(G)：").append(mRecordRice.qualityOfMilledRiceSample).append('\r');
            //整精米质量
            stringBuilder.append("整精米质量(G)：").append(mRecordRice.headRiceQuality).append('\r');
            //整精米率
            stringBuilder.append("整精米率(%)：").append(mRecordRice.headRiceResult).append('\r');
            //出糙率记录员
            stringBuilder.append("整精米记录员：").append(mRecordRice.headRiceRecorder).append('\r');
        }
        //谷外糙米记录员
        if(!TextUtils.isEmpty(mRecordRice.brownRiceRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("谷外糙米").append('\r');
            stringBuilder.append("\r");
            //谷外糙米质量
            stringBuilder.append("谷外糙米质量(G)：").append(mRecordRice.qualityOfBrownRiceSample).append('\r');
            //糙米质量
            stringBuilder.append("糙米质量(G)：").append(mRecordRice.outsideBrownRiceQuality).append('\r');
            //碎米率
            stringBuilder.append("谷外糙米结果(%)：").append(mRecordRice.brownRiceResult).append('\r');
            //谷外糙米记录员
            stringBuilder.append("谷外糙米记录员：").append(mRecordRice.brownRiceRecorder).append('\r');
        }
        //黄粒米记录员
        if(!TextUtils.isEmpty(mRecordRice.yellowGrainRiceRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("黄粒米").append('\r');
            stringBuilder.append("\r");
            //谷外糙米质量
            stringBuilder.append("黄粒米质量(G)：").append(mRecordRice.yellowGrainRiceSampleQuality).append('\r');
            //谷外糙米质量
            stringBuilder.append("黄粒米质量(G)：").append(mRecordRice.yellowGrainRiceQuality).append('\r');
            //谷外糙米质量
            stringBuilder.append("黄粒米率(%)：").append(mRecordRice.yellowGrainRiceResult).append('\r');
            //黄粒米记录员
            stringBuilder.append("黄粒米记录员：").append(mRecordRice.yellowGrainRiceRecorder).append('\r');
        }
        //互混记录员
        if(!TextUtils.isEmpty(mRecordRice.mixedGrainRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("互混").append('\r');
            stringBuilder.append("\r");
            //谷外糙米质量
            stringBuilder.append("互混质量(G)：").append(mRecordRice.massOfMixedSample).append('\r');
            //谷外糙米质量
            stringBuilder.append("异种粮质量(G)：").append(mRecordRice.mixedGrainQuality).append('\r');
            //谷外糙米质量
            stringBuilder.append("互混结果(%)：").append(mRecordRice.mixedGrainResult).append('\r');
            //黄粒米记录员
            stringBuilder.append("互混记录员：").append(mRecordRice.mixedGrainRecorder).append('\r');
        }

        //出米率录员
        if(!TextUtils.isEmpty(mRecordRice.yieldRateRecorder)){
            stringBuilder.append("\r");
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            stringBuilder.append("出米率").append('\r');
            stringBuilder.append("\r");
            //谷外糙米质量
            stringBuilder.append("总稻谷量(G)：").append(mRecordRice.totalPaddyQuality).append('\r');
            //谷外糙米质量
            stringBuilder.append("出米量(G)：").append(mRecordRice.riceQuality).append('\r');
            //谷外糙米质量
            stringBuilder.append("出米率(%)：").append(mRecordRice.yieldRate).append('\r');
            //黄粒米记录员
            stringBuilder.append("互混记录员：").append(mRecordRice.yieldRateRecorder).append('\r');
        }
        var i = 0
        while (i < (1.0 - 2 / 16.0) * 16) {
            stringBuilder.append(" ")
            i++
        }
        InitializeUtils.getThermalService()?.usbSendDatas(stringBuilder.toString().toByteArray(Charset.forName("gbk")))
        InitializeUtils.getThermalService()?.usbSendDatas(BrightekCommandM.t1b4a(100))
    }



    /**
     * 稻谷打印
     */
    fun RicPrinting(mRecordRiceList: List<RecordRice>,mSubclass: String){
        for (mRecordRice in mRecordRiceList){
            if(!mRecordRice.select){
                continue
            }
            val stringBuilder = StringBuilder()
            val title = "稻谷计算"
            val retract = ((1.0 - title.length / 16.0) * 16).toInt()
            for (i in 0 until retract) {
                stringBuilder.append(" ")
            }
            stringBuilder.append(title).append('\r')
            //编号
            stringBuilder.append("编号：").append(mRecordRice.uniqueId).append('\r')
            //时间
            stringBuilder.append("时间：").append(TimeUtils.millis2String(mRecordRice.inspectionDate)).append('\r')
            when (mSubclass) {
                "杂质" -> {
                    /**
                     * 杂质记录员
                     */
                    if(!TextUtils.isEmpty(mRecordRice.impurityRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("杂质").append('\r')
                        stringBuilder.append("\r")
                        // 大样试验-试样质量
                        stringBuilder.append("大样质量(G)：").append(mRecordRice.largeMiscellaneousSampleQuality).append('\r');
                        //大样试验-杂质
                        stringBuilder.append("大样杂质(G)：").append(mRecordRice.detailImpurity).append('\r');
                        //大样杂质率
                        stringBuilder.append("大样杂质率(%)：").append(mRecordRice.detailResults).append('\r');
                        //小样试验-试样质量
                        stringBuilder.append("小样质量(G)：").append(mRecordRice.smallMiscellaneousSampleQuality).append('\r');
                        //小样试验-杂质
                        stringBuilder.append("小样杂质(G)：").append(mRecordRice.smallSampleImpurity).append('\r');
                        //小样杂质率
                        stringBuilder.append("小样杂质率(%)：").append(mRecordRice.sampleResults).append('\r');
                        //杂质总量
                        stringBuilder.append("杂质总量(%)：").append(mRecordRice.impurityResults).append('\r');
                        //杂质记录员
                        stringBuilder.append("杂质记录员：").append(mRecordRice.impurityRecorder).append('\r');
                    }
                }
                "出糙" -> {
                    /**
                     * 出糙率记录员
                     */
                    if(!TextUtils.isEmpty(mRecordRice.rougheningRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("出糙").append('\r');
                        stringBuilder.append("\r");
                        // 大样试验-试样质量
                        stringBuilder.append("出糙质量(G)：").append(mRecordRice.roughSampleQuality).append('\r');
                        //全部糙米
                        stringBuilder.append("全部糙米(G)：").append(mRecordRice.brownRiceQuality).append('\r');
                        //不完善糙米
                        stringBuilder.append("不完善糙米(G)：").append(mRecordRice.incompleteBrownRiceQuality).append('\r');
                        //出糙率
                        stringBuilder.append("出糙率(%)：").append(mRecordRice.rougheningResults).append('\r');
                        //出糙率记录员
                        stringBuilder.append("出糙率记录员：").append(mRecordRice.rougheningRecorder).append('\r');
                    }
                }
                "整精米" -> {
                    /**
                     * 整精米率记录员
                     */
                    if(!TextUtils.isEmpty(mRecordRice.headRiceRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("整精米").append('\r');
                        stringBuilder.append("\r");
                        // 整精米率质量
                        stringBuilder.append("整精米率质量(G)：").append(mRecordRice.qualityOfMilledRiceSample).append('\r');
                        //整精米质量
                        stringBuilder.append("整精米质量(G)：").append(mRecordRice.headRiceQuality).append('\r');
                        //整精米率
                        stringBuilder.append("整精米率(%)：").append(mRecordRice.headRiceResult).append('\r');
                        //出糙率记录员
                        stringBuilder.append("整精米记录员：").append(mRecordRice.headRiceRecorder).append('\r');
                    }
                }
                "谷外糙米" -> {
                    //谷外糙米记录员
                    if(!TextUtils.isEmpty(mRecordRice.brownRiceRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("谷外糙米").append('\r');
                        stringBuilder.append("\r");
                        //谷外糙米质量
                        stringBuilder.append("谷外糙米质量(G)：").append(mRecordRice.qualityOfBrownRiceSample).append('\r');
                        //糙米质量
                        stringBuilder.append("糙米质量(G)：").append(mRecordRice.outsideBrownRiceQuality).append('\r');
                        //碎米率
                        stringBuilder.append("谷外糙米结果(%)：").append(mRecordRice.brownRiceResult).append('\r');
                        //谷外糙米记录员
                        stringBuilder.append("谷外糙米记录员：").append(mRecordRice.brownRiceRecorder).append('\r');
                    }
                }
                "黄粒米" -> {
                    //黄粒米记录员
                    if(!TextUtils.isEmpty(mRecordRice.yellowGrainRiceRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("黄粒米").append('\r');
                        stringBuilder.append("\r");
                        //谷外糙米质量
                        stringBuilder.append("黄粒米质量(G)：").append(mRecordRice.yellowGrainRiceSampleQuality).append('\r');
                        //谷外糙米质量
                        stringBuilder.append("黄粒米质量(G)：").append(mRecordRice.yellowGrainRiceQuality).append('\r');
                        //谷外糙米质量
                        stringBuilder.append("黄粒米率(%)：").append(mRecordRice.yellowGrainRiceResult).append('\r');
                        //黄粒米记录员
                        stringBuilder.append("黄粒米记录员：").append(mRecordRice.yellowGrainRiceRecorder).append('\r');
                    }
                }
                "互混" -> {
                    //互混记录员
                    if(!TextUtils.isEmpty(mRecordRice.mixedGrainRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("互混").append('\r');
                        stringBuilder.append("\r");
                        //谷外糙米质量
                        stringBuilder.append("互混质量(G)：").append(mRecordRice.massOfMixedSample).append('\r');
                        //谷外糙米质量
                        stringBuilder.append("异种粮质量(G)：").append(mRecordRice.mixedGrainQuality).append('\r');
                        //谷外糙米质量
                        stringBuilder.append("互混结果(%)：").append(mRecordRice.mixedGrainResult).append('\r');
                        //黄粒米记录员
                        stringBuilder.append("互混记录员：").append(mRecordRice.mixedGrainRecorder).append('\r');
                    }
                }
                "出米率" -> {
                    //出米率录员
                    if(!TextUtils.isEmpty(mRecordRice.yieldRateRecorder)){
                        stringBuilder.append("\r");
                        var i = 0
                        while (i < (1.0 - 2 / 16.0) * 16) {
                            stringBuilder.append(" ")
                            i++
                        }
                        stringBuilder.append("出米率").append('\r');
                        stringBuilder.append("\r");
                        //谷外糙米质量
                        stringBuilder.append("总稻谷量(G)：").append(mRecordRice.totalPaddyQuality).append('\r');
                        //谷外糙米质量
                        stringBuilder.append("出米量(G)：").append(mRecordRice.riceQuality).append('\r');
                        //谷外糙米质量
                        stringBuilder.append("出米率(%)：").append(mRecordRice.yieldRate).append('\r');
                        //黄粒米记录员
                        stringBuilder.append("互混记录员：").append(mRecordRice.yieldRateRecorder).append('\r');
                    }
                }
            }
            var i = 0
            while (i < (1.0 - 2 / 16.0) * 16) {
                stringBuilder.append(" ")
                i++
            }
            InitializeUtils.getThermalService()?.usbSendDatas(stringBuilder.toString().toByteArray(Charset.forName("gbk")))
            InitializeUtils.getThermalService()?.usbSendDatas(BrightekCommandM.t1b4a(100))
        }


    }
}